2024 Miami Grand Prix¶
Hello managers and welcome to the Fantasy League report for the 2024 Miami Grand Prix, the third Miami Grand Prix F1 has held, with the previous 2 not being very interesting at all, so to add some spice to the weekend, Formula 1 have added a sprint race. Did it make any difference? Let's find out and get into the nitty gritty of the weekend.
Current gossip in the paddock is about Adrian Newey announcing he is leaving the team at the end of the season. He's been with Red Bull for 18 years since their inception from the ashes of Jaguar racing, and he's been in Formula 1 for a lot longer than that! He's basically been the architect for all of the successful cars since the early 90s, and he says he's taking some leave to rest and explore, and perhaps do some traveling. However, that's not what the internet would have you believe, who are convinced that he is going to either Aston Martin or Ferrari in 2026, after serving his gardening leave. Personally, before the Grand Prix weekend began, I thought that it was a slam dunk that Newey was going to Ferrari. There had been rumours that he has sold his house, which he said he would never do, and that could only mean that he was going to be moving. Well why would he move if he was going to work for Aston Martin? The two teams are separated by a very short distance and there is absolutely no need for him to move. But there is a team that doesn't do remote working, and they wear red (usually). So it was obvious that Newey was going to Ferrari. But then I saw the little interview that he did with Martin Brundle before sprint qualifying, and the look in his eyes just said that he was retiring. So he's either a brilliant liar, or he is genuinely done with F1.
Now, I'm not saying that it isn't a perfectly good time for him to retire at his age, but there does seem to be some coincidence between the recent Red Bull speculation and events and the departure of one of its long-standing members. There are similar rumours circling that a certain world champion and the special advisor to the team are also in discussions to leave the team at the end of the year. Yes, Max Verstappen is rumoured to be leaving the Austrian brand at the end of the year, having said publicly that his future is tied to that of Dr Helmut Marko. Marko has served as the head of the Red Bull driver program since the late 00s, and has helped to bring talent such as Sebastian Vettel and Max Verstappen to the forefront of the sport. Well I wasn't aware of the loyalty between Max and Helmut until this news came out that Max was only staying at Red Bull for as long as Helmut was there, but it seems that there is some level of devotion going on there. Again, this is only speculation, but it does seem that the entire Red Bull team is slowly falling apart at the seems and the arrows are all pointing at Christian Horner, who is continuing his bid to buy the remaining portion of the motorsport company from Red Bull, with the help of some Thai financial backing. Whatever the outcome of this saga will be, if we do indeed ever get one, it's not a good look for the sport, or the brand.
To comment slightly on the rumours and speculation going around, it seems that Max has been heavily linked to the empty seat at Mercedes left by the departing Lewis Hamilton. Could it possibly be that Max would go to Mercedes, who are essentially a midfield team now? Well he has said that Toto could offer him one of the biggest ever sporting contracts and he would still say no, but I think that it really does depend on if Marko would also go to Mercedes. If the dominoes fall that way, I think we might see Max in black/silver in the near future. This comes in the same two-week period that Nico Hulkenberg has signed for Kick, with the intention of staying on to bring Audi into the sport, and some news saying that Sainz is not linked to the Audi drive at all, which can only mean that he is linked to the Red Bull drive surely, because I can't see him taking any risk going to Mercedes, or a lower team. The Spaniard attended the MotoGP race in Jerez last weekend, which was a banger by the way, and was overheard talking about how easy it would be to make the switch to 2 wheels. Whatever Sainz decides to do, I'm sure we will know very soon because otherwise all the good options are going to be gone.
Silly season this year is going to be mega, at my last count we have 1 seat at Red Bull, Mercedes, Aston Martin, and Kick Sauber, and 2 seats at Alpine, Williams, RB, and Haas left, or a total of 12 empty seats waiting to be filled for the 2025 season.
import os
import subprocess
import src.dataIO as io
import src.webDataIO as wio
from pathlib import Path
year = 2024
race = 'Miami'
Grand Prix Report¶
After signing a new sponsor earlier in the week, all the talk was about the blue Ferrari. It wasn't what all the hype would have had you believe, and personally I was not a huge fan of the blue on the car, but it sure looked good on the overalls. RB, however, turned up with a surprise livery that really did look beautiful, so well done to them for not only bringing a bit of style to the race weekend, but also for keeping it under-wraps so that no one knew it was coming. Charles Leclerc didn't really take part in FP1 due to a very clumsy spin heading down the back straight out of the tight chicane and under the bridge, with plenty of work to do in Sprint Qualifying as there are no other practice sessions this weekend. The Ferrari man burnt out his clutch trying to turn around at a very narrow part of the circuit and ended up retiring. A whole load of teams brought new upgrades this weekend, notably McLaren who brought almost a brand new car (and a half) for Lando Norris and Oscar Piastri, the latter of whom was unfortunate to be the recipient of the half a new car. Did it affect the outcome of their relative performance? Well let's find out.
Sprint Qualifying¶
Sprint qualifying 1 got underway with a nice little introduction from Ed Sheeran, with the duo of Ed and Ted, but there wasn't much action in the early part of the session, except for a brush against the wall for Aston Martin's Fernando Alonso. The Spaniard was lucky to get away with a little bit of rubbing on his tyres and was able to continue on. Valtteri Bottas was asleep at the wheel into turn 1 as the former Mercedes man nearly turned straight into the side of a fast approaching Oscar Piastri. I still have no idea how the two didn't touch as from both onboards and the exterior camera angle made it look like it was Kick Sauber wheel to McLaren sidepod. The Kick Sauber man was handed a three-place grid penalty for the sprint race. No surprise exits in sprint qualifying 1, with the usual rag-tag group of both Williams, both Kick Sauber drivers, and Pierre Gasly getting eliminated. For the first time ever, I believe, Logan Sargeant out-qualifies Alex Albon after a track limits violation got Albon's final lap time deleted.
Plenty of drivers hitting the wall during sprint qualifying 2, but by far the biggest "shock" of the session was a double Mercedes SQ2 elimination, with neither driver being able to find enough pace to beat the Haas of Nico Hulkenberg or the Aston Martin of Lance Stroll. After a strong performance in the sprint in China, it is surprising to see neither Mercedes make it further than 11th place on the grid. The usual Magnussen, Ocon, and Tsunoda joined them in going no further with the major surprise being Daniel Ricciardo out-qualifying Yuki again to make it into the final shootout.
Sprint qualifying 3 took a while to get going, with none of the teams wanting or being able to do more than 1 flying lap in the hot track temperatures. With Norris going fastest in both of the earlier sprint qualifying sessions, the pressure was on to see if McLaren could take a hat-trick of sprint qualifying poles. But once the pressure was on, as has been shown in the past, Lando crumbled and was only able to manage ninth place, out-qualified by his teammate who in their boss' words had a "0.2 second per lap deficit to Lando". Fernando was out-qualified by Stroll, which I didn't think was possible, but there you go. Ferrari's Charles Leclerc put his Ferrari on the front row but Max inevitably took fastest qualifier with a stonking lap that, at some points, looked very messy indeed.
wio.outputs_sq_data(
year=year,
race=race)
| Pos | No | Driver | Car | Q1 | Q2 | Q3 | Laps |
|---|---|---|---|---|---|---|---|
| 1 | 1 | Max Verstappen VER | Red Bull Racing Honda RBPT | 1:28.194 | 1:28.001 | 1:27.641 | 12 |
| 2 | 16 | Charles Leclerc LEC | Ferrari | 1:28.537 | 1:27.977 | 1:27.749 | 17 |
| 3 | 11 | Sergio Perez PER | Red Bull Racing Honda RBPT | 1:28.681 | 1:27.865 | 1:27.876 | 11 |
| 4 | 3 | Daniel Ricciardo RIC | RB Honda RBPT | 1:28.700 | 1:28.122 | 1:28.044 | 14 |
| 5 | 55 | Carlos Sainz SAI | Ferrari | 1:28.435 | 1:28.262 | 1:28.103 | 16 |
| 6 | 81 | Oscar Piastri PIA | McLaren Mercedes | 1:28.056 | 1:28.163 | 1:28.161 | 16 |
| 7 | 18 | Lance Stroll STR | Aston Martin Aramco Mercedes | 1:28.807 | 1:28.323 | 1:28.375 | 15 |
| 8 | 14 | Fernando Alonso ALO | Aston Martin Aramco Mercedes | 1:28.192 | 1:28.189 | 1:28.419 | 14 |
| 9 | 4 | Lando Norris NOR | McLaren Mercedes | 1:27.939 | 1:27.597 | 1:28.472 | 12 |
| 10 | 27 | Nico Hulkenberg HUL | Haas Ferrari | 1:29.040 | 1:28.330 | 1:28.476 | 15 |
| 11 | 63 | George Russell RUS | Mercedes | 1:28.387 | 1:28.343 | 12 | |
| 12 | 44 | Lewis Hamilton HAM | Mercedes | 1:28.736 | 1:28.371 | 12 | |
| 13 | 31 | Esteban Ocon OCO | Alpine Renault | 1:28.873 | 1:28.379 | 12 | |
| 14 | 20 | Kevin Magnussen MAG | Haas Ferrari | 1:28.377 | 1:28.614 | 12 | |
| 15 | 22 | Yuki Tsunoda TSU | RB Honda RBPT | 1:28.687 | DNF | 9 | |
| 16 | 10 | Pierre Gasly GAS | Alpine Renault | 1:29.185 | 6 | ||
| 17 | 24 | Zhou Guanyu ZHO | Kick Sauber Ferrari | 1:29.267 | 6 | ||
| 18 | 77 | Valtteri Bottas BOT | Kick Sauber Ferrari | 1:29.360 | 7 | ||
| 19 | 2 | Logan Sargeant SAR | Williams Mercedes | 1:29.551 | 6 | ||
| 20 | 23 | Alexander Albon ALB | Williams Mercedes | 1:29.858 | 6 |
Sprint Race¶
Before the sprint race began, Esteban Ocon collided with the side of Charles Leclerc in the pit lane when the two were coming out of their garages and heading for the grid. We've seen some pretty close calls this year with drivers coming out of their garage at high speeds and nearly missing another driver in the "fast lane" of the pit lane. However, this one was quite clumsy. Ocon had plenty of time to get on the brakes and Charles even squeezed right up against the wall to give him as much space as possible. Ocon's front wing went underneath the tyre of Leclerc, with minimal damage caused. Ocon was given a 10 second penalty before the race began, which fortunately he was able to serve in the pits during the sprint race.
The sprint race began with a dive-bomb of Lewis Hamilton down into turn 1 up on the inside of the two Aston Martins, the seven-time champion took a massive risk diving up the inside into the first corner and was met with an Aston Martin of Fernando Alonso who was desperately trying to avoid contact with his own team mate who had sharpened the corner from the outside of the track to avoid Lando Norris. Needless to say that four cars into one corner didn't work and Lewis collided with Alonso who collided with Stroll who collided with Lando, the result was some damage to Lewis' car, damage to Alonso's car, a retirement for Stroll, and Lando stuck on the outside of turn 1 before he retired. Lando was later fined for crossing the track on foot. The others were deemed to have been in a lap-1 incident and no penalties were given.
Things went from bad to worse for the Mercedes man, who spent most of the race behind Kevin Magnussen, the Dane was given a penalty for crossing the chicane at the start of the final sector, which he only did once, and decided that the best option was to protect the team points and hold off the chasing pack to protect Nico. There were some over-the-line actions from Magnussen but, for the most part, the racing was some of the best we have seen all season. Both drivers collided on multiple occasions, with the Haas man given a penalty for dangerous driving. This allowed Lewis to take eighth place on track, but the Brit was later given a 10 second penalty for speeding in the pit lane. There have been many Lewis fans, who are of course all mentally stable beyond belief, who are trying to fit this penalty to some sort of agenda about the FIA, but Lewis was clocked in a 80 km/h speed limit doing over 90 km/h, and the penalty was just. This promoted VCARB's Yuki Tsunoda into the points.
The star of the show was, by far, Daniel Ricciardo. The Aussie man started fourth on the grid and was quickly up to third ahead of Sergio Perez. It wasn't all that long before Sergio was through and there was a moment when we thought that he might tow Daniel along to protect his podium, with it not seeming like Sergio had the pace to take on Leclerc and Verstappen ahead. But alas, this did not last long, and it looked like Carlos Sainz and Oscar Piastri might be through, but Daniel held off for the whole race to keep his fourth place across the line.
Of course, Max and Charles were well clear ahead of the rest to finish first and second, with Sergio just behind. Even the safety car, for Lando's retirement, couldn't even keep things interesting. The rest of the field pretty much stayed as they were with little on the table in terms of points and a lot on the table regarding potential damage or penalty points. The sprint was, above all else, quite entertaining, but there is still something that is missing from the whole thing.
In my opinion, we have to draw inspiration from F2 and Moto GP who hold sprint races at every weekend and make it something worth watching. Primarily, in F2, this is because the cars are basically the same and they reverse the top 10 drivers from the sprint in the feature race, but they bring tyres that are more than one step away from each other in the range. Similarly, in Moto GP, the tyres they bring have to last the entire race because they only make a pit stop for damage or wet tyres. So in the sprint races, they are able to run softer compounds than they normally would in the race. Drawing from both of these, it seems that a logical solution is to run a one-shot qualifying session for the sprint on some very very soft tyres. They'd only be bringing one-less tyre than they normally would for the weekend, so that's good, and you'd get to see a car do a full lap as fast as it is possible for a car to do a lap (i.e., a sprint). Then in the race, they have to run a tyre that is designed for the sprint race, perhaps an experimental compound, that the teams can't learn much from and even if they do, it doesn't matter too much. This way, the tyre compounds drastically effect the race (unless it rains). But that's just my opinion, and what do I know?
wio.outputs_sprint_data(
year=year,
race=race)
Miami
| Pos | No | Driver | Car | Laps | Time/Retired | PTS |
|---|---|---|---|---|---|---|
| 1 | 1 | Max Verstappen VER | Red Bull Racing Honda RBPT | 19 | 31:31.383 | 8 |
| 2 | 16 | Charles Leclerc LEC | Ferrari | 19 | +3.371s | 7 |
| 3 | 11 | Sergio Perez PER | Red Bull Racing Honda RBPT | 19 | +5.095s | 6 |
| 4 | 3 | Daniel Ricciardo RIC | RB Honda RBPT | 19 | +14.971s | 5 |
| 5 | 55 | Carlos Sainz SAI | Ferrari | 19 | +15.222s | 4 |
| 6 | 81 | Oscar Piastri PIA | McLaren Mercedes | 19 | +15.750s | 3 |
| 7 | 27 | Nico Hulkenberg HUL | Haas Ferrari | 19 | +22.054s | 2 |
| 8 | 22 | Yuki Tsunoda TSU | RB Honda RBPT | 19 | +29.816s | 1 |
| 9 | 10 | Pierre Gasly GAS | Alpine Renault | 19 | +31.880s | 0 |
| 10 | 2 | Logan Sargeant SAR | Williams Mercedes | 19 | +34.355s | 0 |
| 11 | 24 | Zhou Guanyu ZHO | Kick Sauber Ferrari | 19 | +35.078s | 0 |
| 12 | 63 | George Russell RUS | Mercedes | 19 | +35.755s | 0 |
| 13 | 23 | Alexander Albon ALB | Williams Mercedes | 19 | +36.086s | 0 |
| 14 | 77 | Valtteri Bottas BOT | Kick Sauber Ferrari | 19 | +36.892s | 0 |
| 15 | 31 | Esteban Ocon OCO | Alpine Renault | 19 | +37.740s | 0 |
| 16 | 44 | Lewis Hamilton HAM | Mercedes | 19 | +49.347s | 0 |
| 17 | 14 | Fernando Alonso ALO | Aston Martin Aramco Mercedes | 19 | +59.409s | 0 |
| 18 | 20 | Kevin Magnussen MAG | Haas Ferrari | 19 | +66.303s | 0 |
| NC | 18 | Lance Stroll STR | Aston Martin Aramco Mercedes | 1 | +0 lap | 0 |
| NC | 4 | Lando Norris NOR | McLaren Mercedes | 0 | +0 lap | 0 |
Qualifying Report¶
With no weather really playing during qualifying, the result was much the same as it was the day before with sprint qualifying. The teams are allowed to make changes to the setups between the sprint race and qualifying beyond what is normally allowed under parc ferme. Or to put that in a way that isn't confusing, the cars come out of parc ferme and many of the teams were kean to make changes in the setup between the sprint and qualifying. The big shock of Q1 was the early exit of Daniel Ricciardo, the Aussie man had been the star of sprint qualifying and the sprint race the very same day, but for some reason he just couldn't put it together in the early stages of qualifying. This was quite common and you're probably going to read me mentioning it a lot, but there was a lot of that going around. He was joined on the bench by Kevin Magnussen, both Kick drivers, and Logan Sargeant. So not a bi shock result, but it was certainly quite surprising to see Daniel go out so early when he seemed to be right in the swing of things with the car and track.
Q2 wasn't much of a surprise either. The two Alpines were never going to make it into a very competitive third qualifying session, Lance Stroll hasn't made it into Q3 regularly in the last two years, and Alex Albon was definitely out-performing the car by making it out of Q1 at all, but the surprise of the day was the early exit of Fernando Alonso. It wasn't anything in particular that caused Fernando to drop out of qualifying early, more just wrestling with a car that wasn't on point for the weekend. Perhaps it was setup changes, perhaps it wasn't, but a reason I have seen circling in the depths of the internet that I particularly like is that Aston Martin brought upgrades to this weekend, and when they do that it seems that Fernando takes a couple of weeks to get going and Lance picks it up straight away. The theory goes that Fernando is over driving the car and working around the problems that the car has, Lance has no idea, and when Aston fix that problem, it takes Alonso a race or two to adjust to a car that is now working better than it was. It's plausible but it could have just been that Aston ruined their chance to get some good results this weekend when Red Bull seemed vulnerable.
If SQ3 was anything to go by, the fight was down to Max Verstappen vs Charles Leclerc for pole position, with both drivers giving it their all. McLaren and Mercedes did not have the pace in qualifying with the soft tyres on, and Sainz was a little out of sorts over one lap this weekend compared to his teammate. Both drivers went out early in the session, as opposed to the previous day when they all sat in their garage waiting for that one-shot opportunity, and set lap times that were within 0.1 seconds of each other. On their second runs, for whatever reason, neither could get the tyres locked in and their cars hooked up, and neither went faster than the other. it was a Max Verstappen pole with Leclerc in second, followed by the other Ferrari and Red Bull. Lando Norris finally got it together to put 0.1 second on his teammate, who was running a B-spec car, with the Mercedes boys right behind them. Nico Hulkenberg is rapidly becoming a regular feature in Q3 but the Haas man could only manage ninth, and he was followed by Yuki Tsunoda, who is proving that it is impossible for both RB/AlphaTauri/Toro Rosso drivers to do well at the same time.
wio.outputs_qualifying_data(
year=year,
race=race)
| Pos | No | Driver | Car | Q1 | Q2 | Q3 | Laps |
|---|---|---|---|---|---|---|---|
| 1 | 1 | Max Verstappen VER | Red Bull Racing Honda RBPT | 1:27.689 | 1:27.566 | 1:27.241 | 18 |
| 2 | 16 | Charles Leclerc LEC | Ferrari | 1:28.081 | 1:27.533 | 1:27.382 | 21 |
| 3 | 55 | Carlos Sainz SAI | Ferrari | 1:27.937 | 1:27.941 | 1:27.455 | 21 |
| 4 | 11 | Sergio Perez PER | Red Bull Racing Honda RBPT | 1:27.772 | 1:27.839 | 1:27.460 | 18 |
| 5 | 4 | Lando Norris NOR | McLaren Mercedes | 1:27.913 | 1:27.871 | 1:27.594 | 21 |
| 6 | 81 | Oscar Piastri PIA | McLaren Mercedes | 1:28.032 | 1:27.721 | 1:27.675 | 19 |
| 7 | 63 | George Russell RUS | Mercedes | 1:28.159 | 1:28.095 | 1:28.067 | 21 |
| 8 | 44 | Lewis Hamilton HAM | Mercedes | 1:28.167 | 1:27.697 | 1:28.107 | 21 |
| 9 | 27 | Nico Hulkenberg HUL | Haas Ferrari | 1:28.383 | 1:28.200 | 1:28.146 | 21 |
| 10 | 22 | Yuki Tsunoda TSU | RB Honda RBPT | 1:28.324 | 1:28.167 | 1:28.192 | 21 |
| 11 | 18 | Lance Stroll STR | Aston Martin Aramco Mercedes | 1:28.177 | 1:28.222 | 15 | |
| 12 | 10 | Pierre Gasly GAS | Alpine Renault | 1:27.976 | 1:28.324 | 15 | |
| 13 | 31 | Esteban Ocon OCO | Alpine Renault | 1:28.209 | 1:28.371 | 15 | |
| 14 | 23 | Alexander Albon ALB | Williams Mercedes | 1:28.343 | 1:28.413 | 15 | |
| 15 | 14 | Fernando Alonso ALO | Aston Martin Aramco Mercedes | 1:28.453 | 1:28.427 | 15 | |
| 16 | 77 | Valtteri Bottas BOT | Kick Sauber Ferrari | 1:28.463 | 6 | ||
| 17 | 2 | Logan Sargeant SAR | Williams Mercedes | 1:28.487 | 8 | ||
| 18 | 3 | Daniel Ricciardo RIC | RB Honda RBPT | 1:28.617 | 9 | ||
| 19 | 20 | Kevin Magnussen MAG | Haas Ferrari | 1:28.619 | 9 | ||
| 20 | 24 | Zhou Guanyu ZHO | Kick Sauber Ferrari | 1:28.824 | 9 |
Race Report¶
As promised, I will not be saying a bad thing about our race winner this week. Lando Norris took his first Grand Prix victory ever in Formula 1, and while he may have been fortunate with the timing of the safety car, he put himself in that position in the first place and he beat Max Verstappen fair and square on the road in dry conditions without damage. That's something that not a lot of people can say. Lando is the first Brit to win since George Russell at the 2022 Brazilian Grand Prix, he's also the only non-Ferrari or Red Bull driver to win since the same Grand Prix. That's a whole lot of racing that has been entirely dominated by 1 team, 1 driver, with a couple of sparse Ferrari appearances in there too. But how did Lando manage to claim a win from fifth on the grid? Not only that but Lando was actually seventh on the opening lap, one of the biggest losers of Sergio Perez's best imitation of Lewis Hamilton. Well let's cover some of the main events.
Like I said, Sergio Perez did a turn 1 dive bomb just like Lewis in the sprint race, nearly wiping out his own team mate, both Ferrari drivers, and nearly Lando Norris. How Perez managed to find the gap between everyone is far beyond me and my formula 1 experience. It's nothing short of a miracle. This did cause some chaos, however, with the Ferrari drivers scrambling for who will be top dog, Oscar Piastri was able to sneak through and claim an early second place, with Norris suffering and falling down the order. Both Mercedes drivers got caught up in the bottleneck too, which allowed Nico Hulkenberg to get ahead of Lewis, who once again spent most of the race staring at the Moneygram logo. Everyone settled in for the long-haul, with the main fight taking place between Lewis and Nico (flashbacks activated), and Lando and Perez. Leclerc, Piastri, Perez, and Verstappen all pitted early allowing Lando to hold some good pace out front.
This was all the status quo until Kevin "Hammer Time" Magnussen and Logan "Eagle Noises" Sargeant were battling on track. Now, I will admit that I am a big Kevin Magnussen fan after some of his racing this weekend, but what I am about to say is not affected by my new found bias. There was absolutely nothing wrong with the placement of Magnussen's car when he and Logan came together on the exit of turn 2, entry of turn 3. Magnussen, despite Martin Brundle's agenda, was more than half-way alongside the Williams man on the outside of one corner which is the entry to another (in the opposite direction). There is absolutely nothing wrong with close battling and I do not understand what the FIA actually think F1 should look like if it isn't that. Sargeant wasn't looking, that's the be-all and end-all of this. The result was Sargeant in the wall on the outside of turn 3, and some severe damage to Kevin's car. The incident brought out a safety car which allowed Lando to pit and maintain his 10 second advantage over Max Verstappen in second.
The safety car protocol was also an interesting one. I do not know what the FIA were doing, or if Bert is so used to seeing Verstappen behind him that he simply didn't let him through, but the Dutchman and chasing pack were on the back of the safety car when Lando emerged from the pits. The Brit was able to pull 30 seconds on the pack before they were allowed to overtake the safety car, and the commentary genuinely wondered if Lando would be allowed to catch the back of the pack and gain a lap advantage. Now, some of us have played the F1 game, some of us have played other racing games too, where we've all considered boxing under the safety car to get the rubbish tyre ticked off, and then pit again to get on the optimum car. It looked like Lando may be able to pit for hards and then pit again for mediums with the advantage the safety car mayhem caused. If this had been allowed to happen, I very much wonder what the FIA would have done to explain themselves. From there, Lando nearly bottled the restart, but was able to pull out a gap to Max and hold off to take his win.
Some notable incidents included the Alpines battling through the tight chicane that is basically only wide enough for half an F1 car, Sainz and Piastri having their little duel, and Max Verstappen running over the cone at the chicane and causing some chaos at the start of the back-straight. Let's start with Piastri and Sainz, for some reason they were basically inseparable after the safety car restart, and there was a moment where Piastri defended by putting Sainz off-track. Sainz pleaded with his team, the FIA, and McLaren to allow him through but nothing came of it. Frustrated, Sainz lost control into the final corner and ran over Piastri's front wing, which forced him to make a late pit stop and battle his way back through the lower field. The Spaniard was hit with a post-race 5-second penalty. Now this one is a little confusing, because I was under the impression that the 5-second penalty had all-but-gone from the race director's back catalog. So I had to take to formula 1's official website for a statement, and here it goes:
"After a stewards' hearing attended by both drivers and their representatives, it was decided that Sainz was to blame for the incident, with the Spaniard having missed the apex after braking late, which then caused him to lose the rear. The stewards stated that Piastri had given sufficient room for Sainz. However, it was also taken into account that, without Sainz slightly losing the rear, the collision would likely not have happened, meaning that the standard penalty of 10 seconds, and two penalty points was changed to a five-second penalty and one penalty point."
So there you go, no more than "well it was kinda no one's fault but let's blame the Spaniard", again from the FIA. The result is that Sainz is demoted to fifth place and Perez promoted to fourth.
Kevin Magnussen, as if we haven't talked about him enough this weekend, is approaching a race ban. Now, if you're not familiar with the penalty points system in F1, here's how it works. It was designed to punch Romain Grosjean in the early 2010s, but it never did because Grosjean really reigned it in after its introduction. Drivers are awarded penalty points based on the severity of the incident, which can be separate from the penalty they have to serve during the session or for the next session, whichever is most appropriate. For instance, Lewis received a 20-second penalty in the sprint but only 1 penalty point, whereas Fernando received a 10-second penalty in China and 3 penalty points. The penalty is separate entirely. So how many points are typically awarded? Well it does vary, but mostly it's 1 for mild, 2 for serious, and 3 for terrible. When a driver reaches 12 points, they receive a race ban, with the points lasting for 12 months after they are initially applied. So Magnussen now has 10 points, 3 for a collision with Alex Albon at the Saudi Arabian Grand Prix, 2 for a collision with Tsunoda at the Chinese Grand Prix, 3 for repeatedly leaving the track during the Miami Sprint, and now 2 for a collision with Sargeant in the Miami Grand Prix. It's not looking good for Kevin if he keeps going like this.
wio.outputs_race_result(
year=year,
race=race)
| Pos | No | Driver | Car | Laps | Time/Retired | PTS |
|---|---|---|---|---|---|---|
| 1 | 4 | Lando Norris NOR | McLaren Mercedes | 57 | 1:30:49.876 | 25 |
| 2 | 1 | Max Verstappen VER | Red Bull Racing Honda RBPT | 57 | +7.612s | 18 |
| 3 | 16 | Charles Leclerc LEC | Ferrari | 57 | +9.920s | 15 |
| 4 | 11 | Sergio Perez PER | Red Bull Racing Honda RBPT | 57 | +14.650s | 12 |
| 5 | 55 | Carlos Sainz SAI | Ferrari | 57 | +16.407s | 10 |
| 6 | 44 | Lewis Hamilton HAM | Mercedes | 57 | +16.585s | 8 |
| 7 | 22 | Yuki Tsunoda TSU | RB Honda RBPT | 57 | +26.185s | 6 |
| 8 | 63 | George Russell RUS | Mercedes | 57 | +34.789s | 4 |
| 9 | 14 | Fernando Alonso ALO | Aston Martin Aramco Mercedes | 57 | +37.107s | 2 |
| 10 | 31 | Esteban Ocon OCO | Alpine Renault | 57 | +39.746s | 1 |
| 11 | 27 | Nico Hulkenberg HUL | Haas Ferrari | 57 | +40.789s | 0 |
| 12 | 10 | Pierre Gasly GAS | Alpine Renault | 57 | +44.958s | 0 |
| 13 | 81 | Oscar Piastri PIA | McLaren Mercedes | 57 | +49.756s | 0 |
| 14 | 24 | Zhou Guanyu ZHO | Kick Sauber Ferrari | 57 | +49.979s | 0 |
| 15 | 3 | Daniel Ricciardo RIC | RB Honda RBPT | 57 | +50.956s | 0 |
| 16 | 77 | Valtteri Bottas BOT | Kick Sauber Ferrari | 57 | +52.356s | 0 |
| 17 | 18 | Lance Stroll STR | Aston Martin Aramco Mercedes | 57 | +55.173s | 0 |
| 18 | 23 | Alexander Albon ALB | Williams Mercedes | 57 | +76.091s | 0 |
| 19 | 20 | Kevin Magnussen MAG | Haas Ferrari | 57 | +84.683s | 0 |
| NC | 2 | Logan Sargeant SAR | Williams Mercedes | 27 | DNF | 0 |
Fastest Lap¶
Despite being told not to fight the back-markers too hard at the end for fear of bringing out a late safety car that could allow Max Verstappen to close to Lando at the front, a late pit stop by Oscar Piastri means he takes the fastest lap this week on lap 43. The Aussie driver was able to lap 0.2 seconds faster than Albon, 0.4 seconds faster than Perez, and nearly half a second faster than his own team mate at the end, with an average speed of 214.965 km/h.
wio.outputs_fastest_lap(
year=year,
race=race)
| Pos | No | Driver | Car | Lap | Time of day | Time | Avg Speed |
|---|---|---|---|---|---|---|---|
| 1 | 81 | Oscar Piastri PIA | McLaren Mercedes | 43 | 17:13:35 | 1:30.634 | 214.965 |
| 2 | 23 | Alexander Albon ALB | Williams Mercedes | 55 | 17:32:26 | 1:30.849 | 214.456 |
| 3 | 11 | Sergio Perez PER | Red Bull Racing Honda RBPT | 55 | 17:31:25 | 1:30.855 | 214.442 |
| 4 | 55 | Carlos Sainz SAI | Ferrari | 55 | 17:31:22 | 1:30.928 | 214.270 |
| 5 | 4 | Lando Norris NOR | McLaren Mercedes | 55 | 17:31:10 | 1:30.980 | 214.148 |
| 6 | 16 | Charles Leclerc LEC | Ferrari | 56 | 17:32:51 | 1:31.084 | 213.903 |
| 7 | 44 | Lewis Hamilton HAM | Mercedes | 54 | 17:29:55 | 1:31.233 | 213.554 |
| 8 | 1 | Max Verstappen VER | Red Bull Racing Honda RBPT | 48 | 17:20:37 | 1:31.261 | 213.488 |
| 9 | 18 | Lance Stroll STR | Aston Martin Aramco Mercedes | 57 | 17:34:58 | 1:31.588 | 212.726 |
| 10 | 22 | Yuki Tsunoda TSU | RB Honda RBPT | 55 | 17:31:35 | 1:31.682 | 212.508 |
| 11 | 14 | Fernando Alonso ALO | Aston Martin Aramco Mercedes | 55 | 17:31:46 | 1:31.727 | 212.404 |
| 12 | 20 | Kevin Magnussen MAG | Haas Ferrari | 33 | 16:58:09 | 1:31.774 | 212.295 |
| 13 | 63 | George Russell RUS | Mercedes | 43 | 17:13:13 | 1:31.921 | 211.955 |
| 14 | 27 | Nico Hulkenberg HUL | Haas Ferrari | 56 | 17:33:22 | 1:31.941 | 211.909 |
| 15 | 24 | Zhou Guanyu ZHO | Kick Sauber Ferrari | 56 | 17:33:30 | 1:31.991 | 211.794 |
| 16 | 31 | Esteban Ocon OCO | Alpine Renault | 51 | 17:25:39 | 1:32.037 | 211.688 |
| 17 | 10 | Pierre Gasly GAS | Alpine Renault | 56 | 17:33:26 | 1:32.055 | 211.647 |
| 18 | 77 | Valtteri Bottas BOT | Kick Sauber Ferrari | 55 | 17:32:00 | 1:32.098 | 211.548 |
| 19 | 3 | Daniel Ricciardo RIC | RB Honda RBPT | 57 | 17:35:04 | 1:32.122 | 211.493 |
| 20 | 2 | Logan Sargeant SAR | Williams Mercedes | 15 | 16:27:27 | 1:33.452 | 208.483 |
Fantasy League Scores¶
Lineup Scores¶
Ok I think I have waffled enough, let's see what this race has done to the fantasy league standings. First let's begin with the driver/team points for the grid. The data you see below are the current total points and values for each driver and team. Values are taken going into the race and updated for next race after I submit the report.
weekly_scores = {
"Name": ["Points", "Value"],
"Race": [f'{race}'],
"Ocon": [43, 9.0],
"Gasly": [24, 8.0],
"Stroll": [10, 13.0],
"Alonso": [70, 16.5],
"Leclerc": [195, 22.0],
"Sainz": [166, 20.4],
"Bearman": ["N/A", "N/A"],
"Magnussen": [49, 8.7],
"Hulkenberg": [44, 7.6],
"Bottas": [5, 6.2],
"Guanyu": [29, 7.1],
"Norris": [127, 24.1],
"Piastri": [98, 19.9],
"Hamilton": [54, 19.0],
"Russell": [82, 19.1],
"Tsunoda": [36, 8.4],
"Ricciardo": [1, 8.8],
"Verstappen": [216, 30.1],
"Perez": [187, 23.0],
"Albon": [11, 7.5],
"Sargeant": [20, 5.9],
"Alpine": [73, 8.4],
"Aston Martin": [118, 15.1],
"Ferrari": [435, 21.5],
"Haas": [113, 8.2],
"Kick Sauber": [38, 5.9],
"McLaren": [268, 24.1],
"Mercedes": [191, 20.2],
"RB": [61, 8.4],
"Red Bull": [530, 28.6],
"Williams": [37, 6.3]}
root = Path().absolute()
if Path(f'{root}/Data/{year}/Lineup/{race}_Results.json').is_file():
pass
else:
io.save_json_dicts(
out_path=Path(f'{root}/Data/{year}/Lineup_Weekly.json'),
dictionary=weekly_scores)
subprocess.run(["python", "lineup.py", f'{year}'])
CompletedProcess(args=['python', 'lineup.py', '2024'], returncode=0)
It's yet another dominant win for Max Verstappen this week with a, slightly lower than normal, score of 40 points ahead of Ferrari's Charles Leclerc with 33 points. In third place it's Sergio Perez with 30 points, with the top three some distance ahead of fourth place Carlos Sainz, and race winner Lando Norris rounding out the top five this week with 25 points. Despite a strong race performance, Lando was severely hindered by his DNF in the sprint race, bringing his score down massively compared to those ahead of him, and proving yet again why the fantasy league scores are better than the real points system. They reward consistency and finishing the race well, rather than just "who won the big race".
After a sprint race retirement, and a not-too-impressive feature race performance, Lance Stroll finishes last this week with -19 points, an absolute disaster for the Canadian rain master. With less than half the points in second this week is Logan Sargeant with -7 points. The star of the weekend Kevin Magnussen is next with 1 point, a poor showing from a driver so exciting during both races. Aston Martin's disappointment continues with Fernando Alonso scoring the fourth lowest score with 9. Rounding out the bottom five is a trio of Alex Albon, Valtteri Bottas, and George Russel, all bringing home 10 points, just barely into double figures there.
Red Bull pull another race win out of the back, this time with a very low (for them) 85 points, ahead of second place Ferrari with 79. These two are leagues ahead of McLaren in third place with 50. This poor score from McLaren comes because of Norris' sprint DNF and Piastri's late-race antics and his resulting low finishing position. Aston Martin are the worst team of the week this week with a -7 points haul, behind Williams with 4 and Haas with 19 points.
Max Verstappen continues his hold at the top of the championship with another weekly win, he now sits at the top with 216 points ahead of Ferrari's Charles Leclerc with 195 points. It's a repeat with Perez in third and Sainz in fourth with 187 and 166 points, quite the mixed bag at the top at the moment. In fifth we have Lando Norris with 127, the Brit is falling slightly behind the top four but is pulling away from the chasing pack. Daniel Ricciardo stays at the bottom of the table this week with 1 point, despite a strong finish in the sprint race, a poor qualifying and feature race combined with a massive points deficit mean the Aussie can't catch Valtteri Bottas ahead with 5 points. Lance Stroll drops down the order next with 10 points, behind Williams driver Alex Albon with 11 points. The Thai driver has nearly half the points of his team mate Logan Sargeant who rounds out the bottom five with 20 points.
It follows that Red Bull are also at the top of the championship standings with another weekly win with 530 points ahead of Ferrari in second with 435 points. It's not quite the perfect 100 ahead, but it's getting there and Ferrari can't afford to let Red Bull pull away at the top. McLaren still hold on to third behind with 268 points. Williams slip down the order this week at the bottom of the table with 37 points, just behind Kick Sauber with 38, and RB with 61 points.
points_files = [
'Driver_Points_Bar.png',
'Team_Points_Bar.png',
'Driver_Sum Points.png',
'Team_Sum Points.png']
directory_path = Path(f'{root}/Data/{year}/Figures/{race}')
file_paths = [Path(f'{directory_path}/{race}_{file}') for file in points_files]
[io.display_img(file_path=path, width=1200, height=720) for path in file_paths]
[None, None, None, None]
Somehow values continue to rise this week, inflation has really hit the fantasy league big time and it's out of control. Max Verstappen is still the most expensive token in the game with a value of $30.1, with race winner Lando Norris in second with $24.1. Close behind is Sergio Perez with a value of $23.0 and Charles Leclerc with $22.0. Carlos Sainz rounds out the top five with $20.4. Your cheapest option at the moment is Logan Sargeant with a value of $5.9, he's a little cheaper than former Mercedes driver Valtteri Bottas at $6.2 and his team mate Guanyu Zhou at $7.1. The second Williams driver, Alex Albon, is next up with a value of $7.5, and Nico Hulkenberg rounds out the cheapest five with a value of $7.6.
Red Bull are the team at the top of the expensive list with a value of $28.6, basically making it impossible for anyone to have Verstappen and Red Bull in their team any more. Despite their position of third in the points table, McLaren are leaps ahead of Ferrari in second place, with the former sitting at $24.1 and the Italians sitting at $21.5. Kick Sauber are at the bottom of the list with $5.9, Williams with $6.3, and Haas at $8.2. Where all values are in millions.
average_files = [
'Driver_Values_Bar.png',
'Team_Values_Bar.png',
'Driver_Average Points.png',
'Team_Average Points.png']
directory_path = Path(f'{root}/Data/{year}/Figures/{race}')
file_paths = [
Path(f'{directory_path}/{race}_{file}') for file in average_files]
[io.display_img(file_path=path, width=1200, height=720) for path in file_paths]
[None, None, None, None]
Two drivers you probably weren't expecting me to mention are at the top of the points per value table this week, Kick Sauber's Guanyu Zhou and RB's Yuki Tsunoda, with the two at 2.82 and 2.74 points/$m, respectively. They are leaps ahead of third place Pierre Gasly with 1.88, fourth place Daniel Ricciardo with 1.82, and Nico Hulkenberg with 1.71 in fifth.
Unsurprisingly Lance Stroll was your worst option this week, not only did he score the lowest amount of points, but due to his relatively high value, he score -1.46 points/$m, closely followed by Logan Sargeant with -1.19 points/$m in second place. Kevin Magnussen scraped 0.11 points/$m, with George Russel and Fernando Alonso rounding out the bottom five with 0.52 and 0.55 points/$m, respectively.
ppv_files = [
'Driver_Points Per Value_Bar.png',
'Team_Points Per Value_Bar.png',
'Driver_Average Points Per Value.png',
'Team_Average Points Per Value.png']
directory_path = Path(f'{root}/Data/{year}/Figures/{race}')
file_paths = [Path(f'{directory_path}/{race}_{file}') for file in ppv_files]
[io.display_img(file_path=path, width=1200, height=720) for path in file_paths]
[None, None, None, None]
subprocess.run(["python", "manager.py", f'{year}'])
CompletedProcess(args=['python', 'manager.py', '2024'], returncode=0)
Manager Scores¶
Let's take a look at the winners and losers of the week. Miami marks a back-to-back sprint weekend, so we have now had 1/3 of the sprint races and should know the shakedown of who is looking like they're in for the running of the Sprint King award. We have a three-way tie for the lead this week between Stefanus and Josh, bringing home 358 points between Syahrul, Haryanto, and Petrobras Williams RBS F1 to take that top step. They are all closely followed by Bwoah OnlyFans VIP Racing in second place, just three points behind, which I believe is the difference between Oscar Piastri and Lando Norris that has cost James down at Bwoah Industries the top spot. In third place, it's a first top five appearance for rookie manager Sam and Mirror, Signal, Manoeuvre with a very impressive 348 points. Sam's biggest mistake here was using limitless but putting faith in Perez for that DRS Boost. In fourth place, we have another appearance for Josh and Vodafone Ferrari Marlboro with 319 points. Reading through this, I realise that perhaps I should have censored that word in 2024, so congrats to ||o|a|o|e |e||a|i Marlboro there on their fourth place. Rounding out the top five we have a two way tie between Josh and Patrick with Siemens McLaren West with 311 points, just narrowly beating James to a second top five appearance there. Congrats to Josh then who managed to get all three teams into the top five this week and put them into contention for Sprint King.
It's a good win for Will in the Golf League this week, with their team The Big One taking the honours with a low score of 72 points. They're closely followed by Andrew and sBinnala Yacht Club in second with 83 points. These two have been on the outskirts of the bottom five recently so it's nice to see them get their bite of the cherry. In third it's Charlie and Lee Carvallo's F1 Challen with 99 points, they're tied for third with Joe and alpine sandbags there too, with Patrick and Racing No Points just 1 point away from that threesome in fourth place. Rounding out the bottom five, though I'm sure not intentionally is rookie manager Adam and Better Luck Next Time Bud with 121 points.
Congrats and commiserations to rookie managers Sam and Chloe this week who take the coveted honour of highest and lowest average managerial scores with 348.0 and 126.0 points. Their scores are heavily affected by the single-team mathematics that go along with this calculation.
Despite everyone's best efforts this week, there is simply no stopping rookie manager Stefanus and their championship campaign. Haryanto, Syahrul, and Gelael hold on to first, second, and third in the standings with 1590, 1547, and 1439 points. In fourth place, moving slightly up, is Patrick and Johnny UniHaas with 1426 points, displacing Toby and Hesketh 2.1 in fifth with 1410 points.
Patrick and Racing No Points maintain their position in the lead of the Golf League for another week with 241 points, but a relatively weak performance in the weekly scores means that Will and The Big One are hot on their heels in second with 299 points. Joe and alpine sandbags are next up in third with 324, with former leader James and Bwoah Rolex Sipsmith Golf slipping up the order in fourth, some two points back with 326. Rounding out the bottom five is Stuart and Ferrari Strategists with 330 points, the experienced manager swapping out a guaranteed zero scoring driver this week with Daniel Ricciardo at the first race all year he has bothered to turn up and race a car.
team_files = [
'LeagueTeams_Points_Bar.png',
'LeagueManagers_Average Points_Bar.png',
'LeagueTeams_Sum Points.png',
'LeagueManagers_Sum Points.png']
directory_path = Path(f'{root}/Data/{year}/Figures/{race}')
file_paths = [
Path(f'{directory_path}/{race}_{file}') for file in team_files]
[io.display_img(file_path=path, width=1200, height=720) for path in file_paths]
[None, None, None, None]
A few more of you are clearly making the decision to put the reigning world champion into your teams this week, or perhaps it was the surge in limitless token usage this week, but Max Verstappen cracks through the 50% usage barrier for the Miami Grand Prix weekend with a total of 33 selections from a possible 65. Alex Albon retakes second place with 29 uses, followed by Bottas and Magnussen with 24 and 23 selections. Yuki Tsunoda has clearly been dropped by many of you in fourth place with 21, and Sainz and Hulkenberg round out the top five with 20 selections.
Ferrari are still the most selected team this week again, with 29 of 65 selections for the Miami Grand Prix. They are followed by Haas F1 with 23 of 65 selections and Red Bull with 20 of 65. Alpine and Aston Martin are your least used teams this week with a brace of 7s.
Max Verstappen still topping the charts for most selected DRS boost with 30, that means that 3 of you have Max in your teams and haven't selected him for DRS boost. Lando Norris and Charles Leclerc manage 8 an 6 selections each this week, which probably shows that two of you have swapped your Charles and Lando DRS tokens to a Max DRS Boost.
Plenty of tokens in the mix this week again, no surprise given that it's another sprint weekend. Max Verstappen gets 3 Extra DRS selections, Sergio Perez gets 1, and for some reason Valtteri Bottas gets an Extra DRS selection. That means that we have 5 uses of the Extra DRS token, we also have 5 No Negative, 6 Limitless, and 3 Wildcard uses. No one going for Auto Pilot or Final Fix this weekend.
count_files = [
'LeagueCounts_Driver_Bar.png',
'LeagueCounts_Constructor_Bar.png',
'LeagueCounts_DRS Boost_Bar.png',
'LeagueCounts_Extra DRS_Bar.png',
'LeagueCounts_Perks_Bar.png']
directory_path = Path(f'{root}/Data/{year}/Figures/{race}')
file_paths = [
Path(f'{directory_path}/{race}_{file}') for file in count_files]
[io.display_img(file_path=path, width=1200, height=720) for path in file_paths]
[None, None, None, None, None]
For more figures, please see the Facebook group album.
subprocess.run(["python", "league_prizes.py", f'{year}'])
CompletedProcess(args=['python', 'league_prizes.py', '2024'], returncode=0)
Prizes¶
So now that we have had two sprint races for the year, let's take a look at who is sitting pretty for the Sprint King prize. If you've forgotten, or been living under a rock all year, let me first explain what this is. The Sprint King prize is awarded to the manager of the team that scores the most points across the sprint weekends only. The scores are calculated only from the sprint races, so it's not "who has the highest by the time the sprint races end". The same applies for The Continental.
Josh and Siemens McLaren West are currently at the top of the standings in the Sprint King prize with 741 points, ahead of Josh and Petrobras Williams RBS F1 and Stefanus and Haryanto in second place with 666 points. In third and fourth it's Stefanus with Syahrul and Gelael with 656 and 646 points, respectively. Rounding out the top five is Sam with Mirror, Signal, Manoeuvre with 635 points.
directory_path = Path(f'{root}/Data/{year}/Figures/Prizes')
file_paths = [
Path(f'{directory_path}/{file}') for file in
os.listdir(directory_path) if f'{race}' in file]
[io.display_img(file_path=path, width=1200, height=720) for path in file_paths]
[None, None]
F1 Play¶
Another week, another tie in the F1 Play league between Matty and Josh, with both players scoring 3/10 ahead of Stuart behind with 2/10, just missing out on that three-way tie at the top.
That takes the scores to:
Stuart - 16
Josh - 19
Matty - 10
F1_play = {
"Stuart S": [3, 5, 2, 4, 0, 2],
"Matty J": [2, 2, 0, 0, 3, 3],
"Josh M": [2, 3, 2, 6, 3, 3]}
io.save_json_dicts(
out_path=Path(f'{root}/Data/{year}/F1_Play.json'),
dictionary=F1_play)
subprocess.run(["python", "F1_play.py", f'{year}'])
points_files = [
'Points.png',
'Sum Points.png',
'Average Points.png']
directory_path = Path(f'{root}/Data/{year}/Figures/F1_Play')
file_paths = [Path(f'{directory_path}/{race}_F1Play_{file}') for file in points_files]
[io.display_img(file_path=path, width=1200, height=720) for path in file_paths]
[None, None, None]
Next Up¶
We have Imola in just under two weeks, which is another Spot Prize weekend. This weekend, however, it's a lowest score spot prize. For you newbies out there, this is your opportunity to throw away your championship hopes for a one-off spot prize, or just let the Golf League players duel it out, the choice is yours. In play now "Hamilton's Reverse Gear" - Imola Lowest Score.